// 时间处理库
import dayjs from 'dayjs';
export const timeChange = (
  time: string | number | undefined | Date,
  target = 1,
) => {
  if (!time) {
    return ''; // 或者返回其他默认值
  }

  // 尝试处理时间戳字符串或标准日期字符串
  let date;
  // 判断输入类型并解析
  if (typeof time === 'string' && !isNaN(Number(time))) {
    // 将数字字符串转换为数字（时间戳）
    date = dayjs(Number(time));
  } else {
    // 对于其他情况（Date 对象、数字、无效类型）
    date = dayjs(time);
  }

  // 检查日期是否有效Mon Oct 21 2024 00:00:00 GMT+0800 (中国)
  if (!date.isValid()) {
    return '';
  }

  const formattedDateTime1 = date.format('YYYY-MM-DD HH:mm:ss');
  const formattedDateTime2 = date.format('YYYY-MM-DD');
  const formattedDateTime3 = date.format('YYYY年MM月DD日');
  const startOfDay = date.startOf('day').valueOf();
  const endOfDay = date.endOf('day').valueOf();

  // 根据 target 返回不同格式
  switch (target) {
    case 1:
      return formattedDateTime1; // 返回完整日期和时间
    case 2:
      return formattedDateTime2; // 返回日期
    case 3:
      return [startOfDay, endOfDay]; // 返回当天开始和结束的时间戳
    case 4:
      return date.valueOf(); // 返回当前时间戳
    case 5:
      return formattedDateTime3; // 返回中文日期
    default:
      return ''; // 默认返回
  }
};

/**
 * 填充时间字符串
 * @param {Number | String} time
 * @returns
 */
export const padTime = (time: number | string) => {
  const timeNum = Number(time);
  return timeNum < 10 ? `0${timeNum}` : time;
};
